package com.zhijian.medical.entity.vo.request;

import com.zhijian.medical.entity.dto.PcrHskzyqWzDto;
import com.zhijian.medical.entity.dto.SampleHstqDNASjDto;
import com.zhijian.medical.entity.dto.SampleHstqRNASjDto;
import com.zhijian.medical.entity.po.ExperimentProcessSampleHstq;
import com.zhijian.medical.entity.vo.response.HstqOfHstqyVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 核酸提取新增类
 *
 * @author HCG
 * @version 1.0
 * @date 2022/8/19
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Api(tags = "核酸提取新增类")
public class ExperimentProcessSampleHstqSaveOrUpdateVo extends ExperimentProcessSampleHstq implements Serializable {

    private static final long serialVersionUID = -2427792688637636705L;

    /**
     * 样本修改数据
     */
    @ApiModelProperty("样本修改数据")
    @NotNull(message = "样本修改数据最少为1")
    @Size(min = 1, message = "样本修改数据最少为1")
    @Valid
    private List<ExperimentProcessSampleHstqUpdateVo> samples;

    /**
     * DNA试剂数据
     */
    @ApiModelProperty("DNA试剂数据")
    private List<SampleHstqDNASjDto> dnaSjList;

    /**
     * RNA试剂数据
     */
    @ApiModelProperty("RNA试剂数据")
    private SampleHstqRNASjDto rnaSj;

    /**
     * 反应孔数据列表，目前只有新冠病毒有
     */
    @ApiModelProperty("反应孔数据列表，目前只有新冠病毒有")
    private List<List<PcrHskzyqWzDto>> fykDataList;

    /**
     * 核酸提取仪列表数据，目前只有新冠病毒有
     */
    @ApiModelProperty("核酸提取仪列表数据，目前只有新冠病毒有")
    private List<HstqOfHstqyVo> hstqyList;

    /**
     * 样本核酸提取修改类
     */
    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    @Api(tags = "样本核酸提取修改类")
    public static class ExperimentProcessSampleHstqUpdateVo {

        /**
         * 样本id
         */
        @ApiModelProperty("样本id")
        @NotNull(message = "样本id不能为空")
        private Long sampleId;

        /**
         * 浓度ng/ul
         */
        @ApiModelProperty("浓度ng/ul")
        private String nd;

        /**
         * OD260/280
         */
        @ApiModelProperty("OD260/280")
        private BigDecimal od260280;

        /**
         * OD260/230
         */
        @ApiModelProperty("OD260/230")
        private BigDecimal od260230;
    }


}
